1470f57f71fd44b053871c4314e9cba4a3f315b4,source_gen/jetbrains/mps/bootstrap/smodelLanguage/helgins/typeof_Property_HasValue_Simple_InferenceRule.java,typeof_Property_HasValue_Simple_InferenceRule,applyRule,#SNode#,21

Before Change


    if(!((Boolean)Queries.CustomExpression_check_isAppliedTo_SPropertyAccess_simpleProperty(argument))) {
      TypeChecker.getInstance().reportTypeError(argument, "\"'has value (simple)' is not expected here\"");
    }
    if(!((SLinkOperations.getTarget(argument, "value", true) == null))) {
      TypeChecker.getInstance().getRuntimeSupport().check(SLinkOperations.getTarget(argument, "value", true));
      if((Boolean)Queries.CustomExpression_check_isAppliedTo_SPropertyAccess_simpleStringProperty(argument)) {
        if(!(TypeChecker.getInstance().getSubtypingManager().isSubtype(TypeChecker.getInstance().getRuntimeSupport().typeOf(SLinkOperations.getTarget(argument, "value", true)), new QuotationClass_5().createNode()))) {
          TypeChecker.getInstance().reportTypeError(SLinkOperations.getTarget(argument, "value", true), "java.lang.String is expected");
        }
      }
      if((Boolean)Queries.CustomExpression_check_isAppliedTo_SPropertyAccess_simpleIntegerProperty(argument)) {
        if(!(TypeChecker.getInstance().getSubtypingManager().isSubtype(TypeChecker.getInstance().getRuntimeSupport().typeOf(SLinkOperations.getTarget(argument, "value", true)), new QuotationClass_6().createNode()))) {
          TypeChecker.getInstance().reportTypeError(SLinkOperations.getTarget(argument, "value", true), "integer is expected");
        }
      }

After Change


        TypeChecker.getInstance().reportTypeError(argument, "couldn't define accessed property datatype");
      }
      SNode value = SLinkOperations.getTarget(argument, "value", true);
      if((value != null)) {
        if(DataTypeUtil.isSimpleString(((DataTypeDeclaration)SNodeOperations.getAdapter(dataType)))) {
          TypeChecker.getInstance().getRuntimeSupport().createLessThanInequation(TypeChecker.getInstance().getRuntimeSupport().typeOf(value), new QuotationClass_5().createNode(), value);
        } else 
        if(DataTypeUtil.isSimpleInteger(((DataTypeDeclaration)SNodeOperations.getAdapter(dataType)))) {
          TypeChecker.getInstance().getRuntimeSupport().createLessThanInequation(TypeChecker.getInstance().getRuntimeSupport().typeOf(value), new QuotationClass_6().createNode(), value);
        } else 
        if(DataTypeUtil.isSimpleBoolean(((DataTypeDeclaration)SNodeOperations.getAdapter(dataType)))) {
          TypeChecker.getInstance().getRuntimeSupport().createLessThanInequation(TypeChecker.getInstance().getRuntimeSupport().typeOf(value), new QuotationClass_7().createNode(), value);